package com.itheima.controller;

import com.alibaba.dubbo.config.annotation.Reference;
import com.itheima.service.SetmealService;
import com.itheima.utils.QiniuUtils;
import org.springframework.stereotype.Component;

import java.util.HashSet;
import java.util.List;
import java.util.Set;

/**
 * 清除图片任务类
 * 使用七牛云API查询所有图片名称
 */
@Component
public class ClearImgController {

    @Reference
    private SetmealService setmealService;

    /**
     * 定期删除七牛云上无效的图片
     */
    public void findAllDBImg() {
        //查询数据库中所有图片名称
        List<String> list = setmealService.findAllImg();
        Set<String> dbSet = new HashSet<>(list);

        //从七牛云上取出所有图片名称
        Set<String> qiniuSet = QiniuUtils.findAllFileName();

        //获取两个set的差值
        //第一种 使用stream流获取
        //Set<String> set = qiniuSet.parallelStream().filter(item -> !dbSet.contains(item)).collect(Collectors.toSet());

        //第二种 使用set集合方法取差
        Set<String> set = new HashSet<>();

        set.addAll(qiniuSet);
        set.removeAll(dbSet);

        //遍历删除 七牛云无效图片
        for (String picName : set) {
            QiniuUtils.deleteFileFromQiniu(picName);
        }

    }

}
